A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
1. Field of Invention
The present invention relates generally to digital system design and, more particularly, to techniques for analyzing behavior and optimizing performance of digital systems, such as integrated circuits.
2. Discussion of Background
Designing of digital hardware involves a multi-leveled synthesis process. At a higher level, the behavior of the digital hardware may be written in a hardware behavioral description language, such as Verilog or Very High Speed Integrated Circuit Hardware Description Language (VHDL). This description is parsed into a control data flow graph (CDFG). The CDFG is synthesized into a register transfer level (RTL) description. At the logic level, logic circuitry is synthesized from the RTL description. At a lower architecture level, physical layouts are synthesized from the logic circuitry.
Observability analysis in logic circuits has been widely used in logic synthesis, test generation, and many other Electronic Computer-Aided Design (ECAD) problems. For more information on observability analysis, see De Micheli, Giovanni, xe2x80x9cSynthesis and Optimization of Digital Circuits,xe2x80x9d McGraw-Hill, Inc., 1994.
Observability analysis has traditionally been performed at the lower levels of the synthesis process. Unfortunately, performing an analysis, for example, at the logic level oftentimes makes it difficult to make necessary changes to the circuit design. The logic level relates to the generation of performance-optimal circuit representations from models in hardware description languages.
A general rule of thumb is that the lower the level, the more difficult it is to make changes to the digital system design. For example, in a synthesis process, architectural level decisions include the following: determining which type of multiplier to be used; determining whether the calculation is to be implemented serially or in parallel. These early stage decisions will have a more significant impact on the final implementation of a design. Then after the architectural level decisions are made, the design is then mapped to a network of logic gates. At the logic level, the freedom of design is substantially less than that at the architectural level. Thus, changes made at the lower levels, such as the logic level, are increasingly time-consuming and costly.
It has been recognized that what is needed is a technique for analyzing observabilities of digital systems at a higher level of the synthesis process. Broadly speaking, the present invention fills these needs by providing a method and system for computing behavioral level observabilities of an digital system. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, or a method. Several inventive embodiments of the present invention are described below.
In one embodiment, a method is provided for performing an observability analysis at the behavioral level of a digital system. The method comprises computing a token observable condition of an edge of a control data flow graph (CDFG); and computing a node observable condition of a node of the CDFG. Each step of computing comprises: traversing the control data flow graph from output nodes to input nodes; and applying appropriate Boolean algebra operations to the traversed CDFG.
In another embodiment, a logic network is provided for performing an observability analysis at the behavioral level of a digital system. The logic network comprises logic objects configured to emulate behavioral observabilities computed from a control data flow graph (CDFG), wherein the logic objects include at least one of: first logic objects configured to compute a token observable condition (TOC) of an edge of the CDFG; and second logic objects configured to compute a node observable condition (NOC) of a node of the CDFG. A logic optimization is used to optimize the logic network to obtain an optimized logic network of the behavioral observabilities.
Advantageously, in synthesis of digital systems such as integrated circuits, the more important decisions are made at the behavioral level. Moreover, it has been found that much of the information easily available at the behavioral level may become very difficult to retrieve at lower levels. Thus, the proposed behavioral level observability analysis provides valuable information for optimization in later design cycles.
The value of the present invention is exemplified and demonstrated by two applications, one is for power optimization and the other is for behavioral level redundancy removal. Also provided is an efficient, practical approach to computing the token observable conditions (TOC""s) and node observable conditions (NOC""s).
The invention encompasses other embodiments of a method, an apparatus, and a computer-readable medium, which are configured as set forth above and with other features and alternatives.